package com.homework4;

/*
（4）设计接口Speak，包含一个抽象方法void speak()。
设计类Animal，类中有一个方法void animalSpeak(Speak speak)，
在该方法中，接口变量speak回调了void speak()方法。
主类中创建Animal的三个对象dog、cat和tiger，且这三个对象均调用void  animalSpeak(Speak speak)方法，
采用接口的匿名类的形式，创建实现了接口Speak的类的对象作为参数，回调void speak()方法，输出不同动物的叫声。
 */
public class Test {
    public static void main(String[] args) {
        Animal cat=new Animal();
        Animal dog=new Animal();
        Animal tiger=new Animal();
        cat.animalSpeak(new Speak() {
            @Override
            public void speak() {
                System.out.println("猫叫");
            }
        });
        dog.animalSpeak(new Speak() {
            @Override
            public void speak() {
                System.out.println("狗叫");
            }
        });
        tiger.animalSpeak(new Speak() {
            @Override
            public void speak() {
                System.out.println("老虎叫");
            }
        });
    }
}


interface Speak{
    void speak();
}

class Animal{
    public void animalSpeak(Speak speak){
        speak.speak();
    }
}

